package com.egg.gateway.config;

import cn.hutool.core.util.ObjectUtil;
import com.egg.common.util.IpUtil;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

import java.util.List;

/**
 * 黑名单配置
 */
@Data
@Configuration
@ConfigurationProperties(prefix = "black")
public class BlackConfig {


    /**
     * 黑名单IP
     */
    private List<String> ip;


    /**
     * 权限放行白名单检查
     *
     * @param targetIp 目标IP
     * @return true 属于黑名单, false 不属于黑名单
     */
    public boolean isBlackIp(String targetIp) {
        if (ObjectUtil.isEmpty(ip)) {
            return false;
        }
        for (String temp : ip) {
            if (IpUtil.isMatchedIp(temp, targetIp)) {
                return true;
            }
        }
        return false;
    }


}
